package com.ruoyi.backend.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 t_order
 * 
 * @author wjr
 * @date 2025-09-23
 */
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Integer id;

    /** 店铺ID */
    @Excel(name = "店铺ID")
    private Integer shopId;

    /** 店铺名称 */
    @Excel(name = "店铺名称")
    private String shopName;

    /** 客户ID */
    @Excel(name = "客户ID")
    private Integer customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Integer productId;

    /** 所属服务ID */
    @Excel(name = "所属服务ID")
    private Integer serviceId;

    /** 所属服务名称 */
    @Excel(name = "所属服务名称")
    private String serviceName;

    /** 负责人id */
    @Excel(name = "负责人id")
    private Integer chargeId;

    /** 负责人名称 */
    @Excel(name = "负责人名称")
    private String chargeName;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 任务描述 */
    @Excel(name = "任务描述")
    private String taskInfo;

    /** 项目开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date projectDateStart;

    /** 项目结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date projectDateEnd;

    /** 预计订单总金额 */
    @Excel(name = "预计订单总金额")
    private BigDecimal totalAmount;

    /** 订单状态：1=待开始（自动生成），2=待开始（店铺分配负责人），3=进行中（客户已确认），5=已完成（店铺提交），6=已完成（客户确认，同时付尾款），7=已结算（店铺确认收到尾款），10=冻结，20=失效 */
    @Excel(name = "订单状态")
    private Integer orderStatus;

    /** 服务评分（总共5分） */
    @Excel(name = "服务评分")
    private Integer serviceScore;

    /** 订单评价 */
    @Excel(name = "订单评价")
    private String orderReview;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }

    public void setShopId(Integer shopId) 
    {
        this.shopId = shopId;
    }

    public Integer getShopId() 
    {
        return shopId;
    }

    public void setShopName(String shopName) 
    {
        this.shopName = shopName;
    }

    public String getShopName() 
    {
        return shopName;
    }

    public void setCustomerId(Integer customerId) 
    {
        this.customerId = customerId;
    }

    public Integer getCustomerId() 
    {
        return customerId;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public void setServiceId(Integer serviceId)
    {
        this.serviceId = serviceId;
    }

    public Integer getServiceId() 
    {
        return serviceId;
    }

    public void setServiceName(String serviceName) 
    {
        this.serviceName = serviceName;
    }

    public String getServiceName() 
    {
        return serviceName;
    }

    public void setChargeId(Integer chargeId) 
    {
        this.chargeId = chargeId;
    }

    public Integer getChargeId() 
    {
        return chargeId;
    }

    public void setChargeName(String chargeName) 
    {
        this.chargeName = chargeName;
    }

    public String getChargeName() 
    {
        return chargeName;
    }

    public void setTaskName(String taskName) 
    {
        this.taskName = taskName;
    }

    public String getTaskName() 
    {
        return taskName;
    }

    public void setTaskInfo(String taskInfo) 
    {
        this.taskInfo = taskInfo;
    }

    public String getTaskInfo() 
    {
        return taskInfo;
    }

    public void setProjectDateStart(Date projectDateStart) 
    {
        this.projectDateStart = projectDateStart;
    }

    public Date getProjectDateStart() 
    {
        return projectDateStart;
    }

    public void setProjectDateEnd(Date projectDateEnd) 
    {
        this.projectDateEnd = projectDateEnd;
    }

    public Date getProjectDateEnd() 
    {
        return projectDateEnd;
    }

    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }

    public void setOrderStatus(Integer orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus() 
    {
        return orderStatus;
    }

    public void setServiceScore(Integer serviceScore) 
    {
        this.serviceScore = serviceScore;
    }

    public Integer getServiceScore() 
    {
        return serviceScore;
    }

    public void setOrderReview(String orderReview) 
    {
        this.orderReview = orderReview;
    }

    public String getOrderReview() 
    {
        return orderReview;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("shopId", getShopId())
            .append("shopName", getShopName())
            .append("customerId", getCustomerId())
            .append("customerName", getCustomerName())
            .append("productId", getProductId())
            .append("serviceId", getServiceId())
            .append("serviceName", getServiceName())
            .append("chargeId", getChargeId())
            .append("chargeName", getChargeName())
            .append("taskName", getTaskName())
            .append("taskInfo", getTaskInfo())
            .append("projectDateStart", getProjectDateStart())
            .append("projectDateEnd", getProjectDateEnd())
            .append("totalAmount", getTotalAmount())
            .append("orderStatus", getOrderStatus())
            .append("serviceScore", getServiceScore())
            .append("orderReview", getOrderReview())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
